package com.ynkbny.service;

import java.util.List;

/**
 * 老狗Api接口-表服务接口
 *
 * @author : juzipi123
 * @date : 2023-7-18
 */
public interface LaoGouApiService {

    /**
     * 查询项目列表，只展示项目的id的一个list
     *
     * @author : juzipi123
     * @return 项目ID 的list
     */
    List<String> queryProjectList2();

    /**
     * 查询所有项目列表，维护“项目表”
     *
     * @author : juzipi123
     * @return 结果
     */
    String queryProjectList();

    /**
     * QueryRegionByProject - 查询所有项目下的区域列表,维护“区域表-region”
     *
     * @author : juzipi123
     * @return 结果
     */
    String queryRegionByProject();

    /**
     * 查询单项目的设备列表，维护“设备表-device”
     *
     * @author : juzipi123
     * @param username 用户名
     * @param password 密码
     * @param projId 项目ID
     * @return 结果
     */
    String queryDeviceByProject(Long projId,String username ,String password);

    /**
     * 查询所有项目的设备列表2,维护“设备表-device”
     *
     * @author : juzipi123
     * @return 结果
     */
    String queryDeviceByProject2();

    /**
     * 查询单个项目设备的属性快照，维护“设备的属性快照-device_attribute”
     *
     * @author : juzipi123
     * @param projId 项目ID
     * @return 结果
     */
    String QueryProjectDeviceParamStatus(Long projId);

    /**
     * 查询所有项目设备的属性快照，维护“设备的属性快照-device_attribute”
     *
     * @author : juzipi123
     * @return 结果
     */
    String QueryProjectDeviceParamStatus2();


    /**
     * 根据项目ID，批量查询属性的历史数据 -存入mongdb-deviceHistoryData表
     *
     * @author : juzipi123
     * @param username 用户名
     * @param password 密码
     * @param projId 项目id
     * @param start 开始时间（时间戳）
     * @param end 结束时间（时间戳）
     * @param metric 多个属性flag(可选,不填查询设备下所有参数)
     * @return 结果
     */
    String queryDeviceParamHistoryDataByProjId(String username, String password,Long projId,Long start,Long end,String metric);

    /**
     * 根据设备ID，查询属性的历史数据 -存入mongdb-deviceHistoryData表
     *
     * @author : juzipi123
     * @param username 用户名
     * @param password 密码
     * @param deviceId 设备id
     * @param start 开始时间（时间戳）
     * @param end 结束时间（时间戳）
     * @param metric 多个属性flag(可选,不填查询设备下所有参数)
     * @return 结果
     */
    String queryDeviceParamHistoryDataBydeviceId(String username, String password,String deviceId,String start,String end,String metric);

    /**
     * 根据设备ID，查询属性的历史数据 -取出相关数据（存入表plan_data）
     *
     * @author : juzipi123
     * @param projId 项目id
     * @param deviceId 设备id
     * @param start 开始时间
     * @param end 结束时间
     * @param metric 点位
     * @return
     */
    String savePlanData(String projId,String deviceId,String start,String end,String metric);

    /**
     * 批量新增数据 PlanData
     *
     * @author : juzipi123
     */
    Boolean savePlanDatas();
}
